An enterprise storage system (“storage system,” hereinafter) typically includes various storage entities provided to store data associated with objects. A storage entity often includes various addressable data blocks. A data block usually refers to the smallest addressable block of memory in a storage entity that stores the data associated with the objects. The average size of a typical object is sometimes an order of magnitude larger than the size of a data block. As such, most previously available storage systems store the object using numerous data blocks across multiple storage entities. Such storage systems are typically inefficient at storing objects that are less than or of the same order of magnitude as the size of a data block.
Some storage systems also provide fault-tolerance. Such storage systems are usually able to recover an object when there is a need to recover the object. For example, previously available storage systems typically recover an object in response to detecting a loss of data at a storage entity that stored data associated with the object. Prior storage systems use parity data for an object to recover the object. The parity data is typically stored in parity blocks across multiple storage entities. A parity block usually refers to the smallest addressable block of memory in a storage entity that stores the parity data. Some previously available storage systems are inefficient at storage space utilization because they use more parity blocks than needed to provide fault tolerance.
In accordance with common practice the various features illustrated in the drawings may not be drawn to scale. Accordingly, the dimensions of the various features may be arbitrarily expanded or reduced for clarity. In addition, some of the drawings may not depict all of the components of a given system, method or device. Finally, like reference numerals may be used to denote like features throughout the specification and figures.